﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using Controladores;
using Entidades;
using Web.Helpers;

namespace Web.Pages
{
    public partial class Login : BasePage
    {
        #region Events

        protected new void Page_Load(object sender, EventArgs e)
        {
            base.Page_Load(sender, e);

            if (!Page.IsPostBack)
            {
                this.CargarPagina();
            }
        }

        #endregion

        #region Private Methods

        private void CargarPagina()
        {
        }

        #endregion

        #region WebMethods

        /// <summary>
        /// Envía mail de recuperación de password
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        [WebMethod]
        public static string enviarMailRecuperacionPassword(string email)
        {
            var mensaje     = String.Empty;
            var resultado   = false;
            object valor    = null;
            try
            {
                var usuario = new ControladorBase<Usuario>().ObtenerEntidad(x => x.Email.ToLower() == email.ToLower());
                if (usuario.IsNotNull())
                {
                    var destinatarios = MailHelper.CreateRecipientsList(email, email);
                    resultado = MailHelper.EnviarMailRecuperacionPassword(destinatarios, new[] {usuario.NombreUsuario, usuario.Password, usuario.Email});
                    mensaje = resultado ? "Se ha enviado el password a la casilla de email indicada." : "Hubo un error al enviar el mail de recuperación.";
                }
                else
                {
                    mensaje = "No existe Usuario asociado a esa casilla de email.";
                }
            }
            catch (Exception ex)
            {
                LogError(ex);
                mensaje = "Hubo un error al enviar el mail de recuperación." + Environment.NewLine + ex.Message;
            }
            return SessionHelper.BuildResponse(mensaje, resultado, valor);
        }

        #endregion
    }
}